home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / muds / pennmush.000 / pennmush-1.50-p8-linux.tar / pennmush / CHANGES-2 < prev    next >
Text File  |  1993-01-15  |  12KB  |  201 lines

  1. This version of code is based on the PernMUSH 1.15 code, formerly maintained
  2. by Moonchilde (JT Traub, jt1o@andrew.cmu.edu). It has been heavily modified
  3. by me in an attempt to increase compatibility with TinyMUSH 2.0 and to add
  4. many features. The file which follows is a detailed log of the changes.
  5.  
  6. This file is current through Release level 1.17 Gamma. Update changes are
  7. numbered 1.17.01, 1.17.02, etc.  The list of update changes in this file
  8. are compressed into one long list, per major version. This file goes from
  9. version 1.16 on; prior changes done by Moonchilde can be found in the file
  10. CHANGES-1.   --  Amberyl.
  11.  
  12. ------------------------------------------------------------------------------
  13. January 14, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu)  Release level 1.16
  14.   -- Probable last release of the PernMUSH code. The 1.x code family will
  15.      be maintained by T'nor, and will be known as SC-MUSH 1.0. That code
  16.      is based on PernMUSH 1.15, although it incorporates most of the features
  17.      in this release. A similar but different code, which diverged from the
  18.      main PernMUSH line at version 1.13, is Spellbound MUSH 1.0
  19.   -- New functions
  20.     * CAPSTR() -- returns a string with the first character capitalized
  21.     * FLIP() -- reverses a string
  22.     * HASFLAG() -- checks if an object has a certain flag
  23.     * LCSTR() -- returns a string all in lowercase
  24.     * LNUM() -- creates a number list (i.e. LNUM(4) outputs 0 1 2 3)
  25.     * NEARBY() -- checks to see if two objects are "nearby" each other
  26.     * UCSTR() -- returns a string all in uppercase
  27.     * From the 2.0 code:
  28.         DIST2D() and DIST3D() -- returns the distance between points
  29.         WORDPOS() -- returns the word number a character position occurs
  30.     * LWHO() -- returns a list of connected players' dbrefs. This function
  31.         courtesy of Tim Poe (raven@ccwf.cc.utexas.edu)
  32.   -- New flags
  33.     * IMMORTAL -- wiz-settable flag which prevents objects from being killed
  34.     * NO_TEL -- prevents teleports from a room. Useful for puzzles.
  35.     * SAFE -- prevents destruction of an object.
  36.     * SUSPECT -- wiz-settable flag which reports the connects, disconnects,
  37.     name changes, kills, and attempted kills from a suspect player.
  38.     * TERSE -- suppresses room descriptions and succ/fail messages for
  39.     objects with this flag. Useful for moving through areas quickly.
  40.   -- New commands
  41.     * @nuke -- overrides the SAFE flag.
  42.     * @lemit -- "location emit" which sends a message to the outermost
  43.     container (always a room) of an object.
  44.     * @wallpose and @wallemit -- allow poses and emits in walls. The format
  45.     of @walls has been changed to prepend "Announcement:" to the message.
  46.     @wallpose may be abbreviated to "@wall :<pose>"
  47.     * @decompile -- dumps the sequence of commands needed to create an object.
  48.     * @dolist -- courtesy of Tim Poe (raven@ccwf.cc.utexas.edu - thanks!)
  49.         Repeats commands for a list (see the help for details).
  50.   -- New features
  51.     * @move/@omove/@amove -- attributes executed whenever an object moves.
  52.     * Enter locks -- objects now have a separate lock which governs whether
  53.     or not the object maybe entered. The ENTER_OK flag overrides the
  54.     lock. The @efail/@oefail/@aefail attributes are executed if the
  55.     lock is not passed. These locks are controlled by @elock/@eunlock.
  56.     * Page locks -- players have a page lock. If a target player is pagelocked
  57.     against his pager, he is treated as if he were HAVEN to that player.
  58.     * Page return -- an @idle message is automatically page-returned to a
  59.     successful page. If a player is HAVEN or his pagelock failed, his
  60.     @haven message is sent. If a player is not connected, his @away
  61.     message is sent.
  62.     * Enter/leave aliases -- objects now have @ealias and @lalias attributes
  63.     which do the obvious. So you can have "sit down" instead of
  64.     "enter chair" and "stand up" instead of "leave", etc.
  65.     * Global commands -- objects and exits in a Master Room are treated as
  66.     global. This is compile-time configurable.
  67.     * Lastsite attribute -- keeps track of site player last connected from.
  68.   -- Fixes and changes to old commands
  69.     * Whisper-pose -- "whisper <person>=:<pose>" now works.
  70.     * @ps -- the number of items in the queue is now counted. @ps count"
  71.     displays just the totals.
  72.     * @halt -- fixed to allow wizards to do "@halt <player>", and to allow
  73.     "@halt <object>" to be used as an alias for "@set <object>=HALT".
  74.     * A bunch of fixes to quota
  75.         Fixed @quota so it no longer crashes the MUSH. (Bleah!)
  76.         Fixed @clone so it now checks quotas.
  77.         Rewrote the help (it was inaccurate)
  78.     * Fixed some minor screwups in ROYALTY, and changed it to allow wizards to
  79.     set players royal, and royal players to set their objects royal.
  80.         Did some cleanup work on "do_examine" and related functions so
  81.         examine for ROYALTY actually works. (Grrrr.)
  82.     * Did some cleanup on "kill", fixing some bugs. @death/@odeath/@adeath
  83.     now works properly.
  84.     * Added a "nearby" function to predicates.c which checks if two objects
  85.         are near each other. Fixed LOC() so it works the way the help says.
  86.     * Added a "find_flag" function to predicates.c which compares player
  87.         input to the flag list and comes up with a match. Rewrote "do_set"
  88.         to use this (the new HASFLAG() function also uses it).
  89.     * can't @destroy master room, need to use @nuke to destroy players  
  90.     * NO_TEL now checks "absolute" location for NO_TEL flag
  91.     * %p, %s, and %o now return "its/it/it" for no-gender objects
  92.     * @boot now shows that someone kicked you off
  93.     * @shutdown notifies all players that a wizard did a @shutdown
  94.     * @toad command must be typed in full
  95.     * @emit and @oemit no longer show "You emit/You oemit" to the player
  96.         giving the command, but just echo the message
  97.     * Bug fix to do_set so flags which are different for different types
  98.         don't clobber each other
  99.     * Various minor bugfixes
  100.     * "help @-commands" split into several sections. Some cleanup of help.
  101.   -- See "help" for details. If you have problems, contact me (Amberyl)
  102.     or T'nor (raven@ccwf.cc.utexas.edu) on the MUDs or via email.
  103. ----------------------------------------------------------------------------
  104. January 31, 1992  -- Lydia Leong (lwl@eniac.seas.upenn.edu) Release level 1.17
  105.   -- New functions
  106.     * ART() -- returns the appropriate article "a" or "an"
  107.     * MAIL() -- function to return a mail message
  108.     * MAX() -- returns largest number in list of up to 10 arguments
  109.     * MIN() -- returns smallest number in list of up to 10 arguments
  110.     * OBJ() -- perfoms objective pronoun substitution
  111.     * POSS() -- performs possessive pronoun substitution
  112.     * RNUM() -- like NUM(), but on a remote room. Only defined if the
  113.     master room is configured (for use with globals)
  114.     * SUBJ() -- performs subjective pronoun substitution
  115.     * TYPE() -- returns the type of an object
  116.     * XGET() -- works like get(), but can have nested arguments, and uses
  117.     a comma instead of a slash to separate its arguments. Basically
  118.     this is just a nasty hack to overcome a lousy parser
  119.   -- New flags
  120.     * INHERIT -- restricts @force/@set/@trigger (read the help)
  121.     * VERBOSE -- prints an object's command before executing it
  122.   -- New commands
  123.     * @config: shows configuration parameters for the MUSH
  124.     * DOING: for wizards, gives the player WHO list. @doing messages do not
  125.     show up in wizard WHO, so wizzes don't get spammed by the list.
  126.     * @mail: hardcoded mail, courtesy of Joarm/Spellbound MUSH
  127.     * @poll: sets the @doing poll
  128.     * @rwall/@rwallpose/@rwallemit: allows Royalty to broadcast to wizards
  129.          and royalty, in a fashion similar to @wizwall
  130.   -- New features
  131.     * Uselocks implemented as a superset of pagelocks. The commands have been
  132.     changed to @ulock/@uunlock. A uselock applies to "use" of the object,
  133.     as well as triggering $commands on it
  134.     * @use/@ouse/@ause, triggered by "use", added
  135.     * Old "@use" command changed to "@use-does", for backward compatibility
  136.     * Inactivity timeout, compile-time settable
  137.     * Guest character, who cannot change name or password, or build
  138.     This is compile-time configurable
  139.     * Added %b and %t substitutions (blank space and tab)
  140.     * Attributes may have a ^ pattern similar to $command patterns. These
  141.     act like multiple @listen patterns and are triggered under the same
  142.     criteria as an ahear. For example, @va object=^* has arrived.:"Hi.
  143.     would match "Amberyl has arrived." and the object would say Hi.
  144.     These are only matched if no @listen exists.
  145.     * added announce.c to the distribution package
  146.   -- Changes to existing commands
  147.     * test_set changed to allow '&' to be used for user-defined attributes,
  148.     for compatibility wth 2.0 code
  149.     * @decompile now distinguishes between normal and user-defined attributes,
  150.     and uses '&' for user-defined
  151.     * @search now does a count of objects.
  152.     * changed enterlocks so that to enter an object, you must both pass
  153.     the lock and the object must be enter_ok
  154.     * @pemit and whisper now match objects in the player's possession as 
  155.         well as the player's container.
  156.     * need to use @nuke to destroy a wizard object.
  157.     * @doing and @poll now tell you how many characters got truncated from
  158.     your message, if it was too long.
  159.     * @clone will now do exits
  160.     * if a @listen is not found, the game will now check for ^ patterns
  161.     in attributes, which act like an ahear.
  162.   -- Fixes and other sundries
  163.     * fixed a bug which caused a coredump if you attempted to look at a
  164.     TRANSPARENT exit linked to *HOME*.
  165.     * home(exit) now returns that exit's source room
  166.     * examine now reports an exit's source
  167.     * exits linked to home now send an object home
  168.     * new matching functions for remote rooms
  169.     * successfully teleporting something to an exit no longer shows that
  170.     stupid "imposes his will on yours" message
  171.     * fix to ucstr and lcstr to add terminating '\0' (stupid mistake)
  172.     * safe_tel fixed to avoid conflict between BUILDER and KEY, and to avoid
  173.     sending STICKY objects home if their home is the teleporting object
  174.     * @boot fixed so wizards can't boot themselves.
  175.     * THING_SAFE, PLAYER_SUSPECT, and ROOM_NO_TEL moved from 1000000 to
  176.         4000000, for compatibility with SC-1.0 code.
  177.     * changed do_examine to match exits first, for 2.0 consistency,
  178.     changing it back from an earlier fix. Note that 2.0 plans to
  179.     change the order in the future. This makes examine consistent
  180.     with the other commands which do name-matching.
  181.     * changed do_destroy to always notify player when room is destroyed
  182.     * added a "flag" to unparse_boolexp, so that you can get a "basic" unparse:
  183.     only dbrefs and tokens (i.e. exactly what you'd need to type to lock
  184.     that object to that key). Added the ability to decompile locks,
  185.     and changed LOCK() to use unparse_lock instead of unparse_boolexp
  186.     * @chown now removes the Royalty flag.
  187.     * abilities of royalty expanded to be consistent. They have full wizprivs
  188.     wrt. examining and teleporting but cannot change things - they see
  189.     the wizard WHO (since they can examine a player for Lastsite and
  190.     location anyway), use LWHO(), GET(), V(), LCON(), etc. as if they
  191.     were wizards. New macro added "Hasprivs", which is true for royalty
  192.     or wizard or God, getting rid of most of the #ifdef ROYALTY_FLAGs
  193.     in the code.
  194.     * @newpassword, @boot, @nukes of players, @toad, @pcreate, and all
  195.     all commands from SUSPECT players are logged
  196.     * Log highlights wizard forces of objects they don't own
  197.     * PUPPET is now THING_PUPPET
  198.     * global exits, ealiases, and laliases can be more than one word long
  199.     * NO_TEL is now determined by the location of the victim not the
  200.     location of the player trying to do the teleport
  201.